#####################################################################
#
#	Created by 6502 ASM Project		2013-6-17 13:37:27
#
#####################################################################

TOOLSDIR		= C:\PROGRA~1\GENERA~1\GPIDE_~1.2\Tools\Compiler\6502
PROJECTDIR		= D:\SA2_SPEECH\library\8-bit\ComAir\ComAir5_DAC\V100\Released\GPCD9_ComAir5_V100
BODYPATH		= C:\Program Files\Generalplus\GPIDE_6502 1.1.0.2\gplus\project\Body\6502\GPCD9
OUTPUTDIR		= .\Release
IMDIR			= .\Release

BODYSERIES		= GPCD9
INCLUDEPATH		= -I "$(PROJECTDIR)" 
ASMCONF			= -C "$(BODYPATH)\\.\ASM\GPCD9_ASM.conf"
CHIPINFO		= "$(BODYPATH)\\.\ChipInformation\GPCD9340Ax_ChipInfo.conf"
ASMFLAG			= -b $(CHIPINFO) -p $(BODYSERIES)_SERIES -p INS_LIB_NOT_EXIST -Tn -l -d -s -q -SC $(INCLUDEPATH)

ASM				= $(TOOLSDIR)\6502_Asm.exe 
RESERVEDAREA	= $(TOOLSDIR)\6502_ReservedArea.exe
MASKOPTION		= $(TOOLSDIR)\6502_MaskOption.exe
INITIALTOOL		= $(TOOLSDIR)\6502_InitialTool.exe
RESCONV			= $(TOOLSDIR)\6502_ResConverter.exe
LINK			= $(TOOLSDIR)\6502_Linker.exe
RM				= del /F 1>NUL 2>NUL
PROGDATAGEN		= $(TOOLSDIR)\6502_TableGen.exe
ALLOCATOR		= $(TOOLSDIR)\6502_Allocator.exe
LINKSCRIPTGEN	= $(TOOLSDIR)\6502_LinkerScriptGenerator.exe
REPORT			= $(TOOLSDIR)\6502_Reporter.exe
MAKEDIR			= mkdir
ECHO			= @echo //-----------------------------------------------------------------------

OVERWRITELIK	= TRUE

BINFILE			= ".\Release\GPCD9_Demo.bin"

OBJFILES		= \
	".\RELEASE\GPCD9_DEMO.OBJ"\
	".\RELEASE\STARTUP.OBJ"

OUTPUTFILES		= 			"$(IMDIR)\*.resobj"\
							"$(IMDIR)\*.asm"\
							"$(IMDIR)\*.lst"\
							"$(IMDIR)\*.obj" \
							"$(IMDIR)\*.lib" \
							"$(IMDIR)\*.tab" \
							"$(IMDIR)\Res_Tbl.obj.asm" \
              "$(OUTPUTDIR)\GPCD9_Demo.sym" \
              "$(OUTPUTDIR)\GPCD9_Demo.map" \
              "$(OUTPUTDIR)\GPCD9_Demo.sbms" \
              "$(OUTPUTDIR)\GPCD9_Demo.sbm" \
              "$(OUTPUTDIR)\GPCD9_Demo.s37" \
              "$(OUTPUTDIR)\GPCD9_Demo.hdb" \
              "$(OUTPUTDIR)\GPCD9_Demo.rpt" \
							"$(OUTPUTDIR)\GPCD9_Demo.elf" \
							"$(OUTPUTDIR)\GPCD9_Demo_Report.html" \
							"$(OUTPUTDIR)\GPCD9_Demo_Report_MID.html" \
							"$(OUTPUTDIR)\GPCD9_Demo_Report_MEM.html" \
							"$(OUTPUTDIR)\GPCD9_Demo_ConfirmSheet.html"					

RESDB			= ".\GPCD9_Demo.qpcres"
PROGDB			= ".\GPCD9_Demo.qpcact"

RESERVEDAREACFG	= ".\ReservedArea.cfg"
MASKOPTIONCFG	= ".\MaskOption.cfg"
INITIALTOOCFG	= ".\InitialValue.cfg"
BININFOFILE		= "$(TOOLSDIR)\BinInfo\BinInfo.conf"

#-------------------------------------------------------------------------
# Assmble *.asm to *.obj
#-------------------------------------------------------------------------
".\RELEASE\GPCD9_DEMO.OBJ" : ".\GPCD9_DEMO.ASM" ".\GPCD9.INC" ".\INC\SYSTEM.INC" ".\MODULE\SW_CHANNEL.ASM" ".\MODULE\IO_EVENT.ASM" ".\MODULE\MIDI.ASM" ".\MODULE\SPEECH.ASM" ".\MODULE\INPUT.ASM" ".\MODULE\COMAIR5.ASM" ".\TAB\CHANNEL.TAB" ".\RES_TBL.INC" ".\RES_TBL.ASM" ".\INC\SW_CHANNEL.INC" ".\INC\SW_CHA.INC" ".\INC\SW_CHB.INC" ".\INC\IO_EVENT.INC" ".\INC\MIDI.INC" ".\TAB\MIDI.TAB" ".\INC\SPEECH.INC" ".\INC\INPUT.INC" ".\INC\COMAIR5.INC"
	$(ASM) $(ASMFLAG) -o ".\Release\GPCD9_DEMO.OBJ" ".\GPCD9_Demo.asm"
	$(ECHO)
".\RELEASE\STARTUP.OBJ" : ".\STARTUP.ASM"
	$(ASM) $(ASMFLAG) -o ".\Release\STARTUP.OBJ" ".\Startup.asm"
	$(ECHO)


.SUFFIXES : .asm .obj

.PHONY : all
all : preBuild outputdir resconvert tablegen compileobj preLink linker postLink maskoptions reporter postBuild

.PHONY : clean
clean :
	-if not exist "${IMDIR}\$(NULL)" ${MAKEDIR} "${IMDIR}"
	-if not exist "${OUTPUTDIR}\$(NULL)" ${MAKEDIR} "${OUTPUTDIR}"
	$(RM)  $(BINFILE)
	$(RM)  $(OUTPUTFILES)
	$(ECHO)
	
.PHONY : build	
build: 	build_init all
	
.PHONY : rebuild	
rebuild: clean rebuild_init all	
	
build_init:	
	$(INITIALTOOL) -R $(RESDB) -P $(PROGDB) -F $(INITIALTOOCFG) -B $(CHIPINFO) -T Asm -A Reflash
rebuild_init:
	$(INITIALTOOL) -R $(RESDB) -P $(PROGDB) -F $(INITIALTOOCFG) -B $(CHIPINFO) -T Asm -A Create
	
outputdir:
	if not exist "$(OUTPUTDIR)\$(NULL)" mkdir "$(OUTPUTDIR)"
	if not exist "$(IMDIR)\$(NULL)" mkdir "$(IMDIR)"
	$(ECHO)
	
.PHONY : resconvert
resconvert : 
	$(RESERVEDAREA) -D $(RESDB) -R $(RESERVEDAREACFG)
	$(ECHO)
	$(RESCONV) -R $(RESDB) -P $(PROGDB) $(ASMCONF)  -O "$(PROJECTDIR)\\$(IMDIR)" -B $(BODYSERIES) $(INCLUDEPATH) -CP "$(PROJECTDIR)\resource.cfp" -H No
	$(ECHO)

tablegen :
	$(PROGDATAGEN) -T GP_ASM -R $(RESDB) -S CODE -O "$(IMDIR)"
	$(ECHO)
	$(ALLOCATOR) -R $(RESDB) -C $(CHIPINFO)
	$(ECHO)

.PHONY : compileobj
compileobj : $(OBJFILES) rmbinfile	
ifdef OVERWRITELIK
	$(LINKSCRIPTGEN) -I ".\LinkerScriptParam"
	$(ECHO)
endif
	
rmbinfile : 
	$(RM) $(BINFILE)
	$(ECHO)
	
linker :
	$(LINK) ".\_Prog_.lik"
	$(ECHO)

maskoptions:	
	$(MASKOPTION) -i $(BINFILE) -o $(BINFILE) -bd "$(BODYPATH)" -m $(MASKOPTIONCFG) -bi $(BININFOFILE)
	$(ECHO)
	
.PHONY : reporter
reporter : 
	$(REPORT) -Raqe $(RESDB) -Pfst $(PROGDB) -O "$(OUTPUTDIR)\GPCD9_Demo_Report" -H -M "$(OUTPUTDIR)\GPCD9_Demo.map" -F $(CHIPINFO)
	$(ECHO)
	
preBuild:
	@echo Pre-Build Event:
	
	$(ECHO)
preLink:
	@echo Pre-Link Event:
	
	$(ECHO)
postLink:
	@echo Post-Link Event:
	
	$(ECHO)
postBuild:
	@echo Post-Build Event:
	
	$(ECHO)
	
